import {
  newPost
} from '@http'

/**
 * 日统计表
 * */

export async function dayStatistics (param) {
  const data = {
    page: 1,
    num: 15,
    clientId: '', // 客户编号
    boatAgentId: '', // 船公司编号
    theOperatorId: '', // 业务员编号
    boxState: '', // 状态放箱状态 0新业务 1放单中 2已完成 3 已拒绝 4 没预配 5 船期早 6 明天放 7 已退关 8等通知 9客户取消10 退单 11 申请中 12 爆仓 13有问题 14 缺箱子 15 换单中
    applyStartTime: '', // 申请开始时间
    applyEndTime: '' // 申请结束时间
  }
  Object.assign(data, param)
  const res = await newPost('dayStatistics', data)
  return res
}

/**
 * 获取业务员列表
 * */

export async function getSalesman (param) {
  const data = {
    userName: '', // 用户名
    state: 1, // 状态
    userType: 8, // 用户类型
    page: 1, // 页数
    num: 10000 // 条数
  }
  if (param.page) {
    param.page = parseInt(param.page)
  }
  if (param.num) {
    param.num = parseInt(param.num)
  }
  Object.assign(data, param)
  const res = await newPost('getSalesman', data)

  return res
}

/**
 * 获取船代公司列表
 * */

export async function SearchBoatAgentComData (param) {
  const data = {
    boatAgentName: '', // 名称
    state: '', // 状态
    page: 1, // 页数
    num: 1000 // 条数
  }
  if (param.state) {
    param.state = parseInt(param.state)
  }
  if (param.page) {
    param.page = parseInt(param.page)
  }
  if (param.num) {
    param.num = parseInt(param.num)
  }
  Object.assign(data, param)
  const res = await newPost('SearchBoatAgentComData', data)
  return res
}

/**
 * 搜索客户信息
 * */
export async function SearchUserInfo (param) {
  const data = {
    motorcadeName: '', // 车队名称
    fullName: '', // 公司联系人
    page: 1,
    num: 10000
  }
  Object.assign(data, param)
  const res = await newPost('SearchUserInfo', data)
  return res
}

/**
 * 删除样式
 * */
export async function deleteField (param) {
  const data = {
    styleId: '' // 样式Id
  }
  Object.assign(data, param)
  const res = await newPost('deleteField', data)
  return res
}

/**
 * 导出数据到Excel
 * */
export async function exportToExcel (param) {
  const data = {
    jsonStr: '', // JSON字符串
    fileName: '', // 文件名
    sheetName: '', // 表名
    comName: '', // 公司名称
    comPhone: '', // 公司电话
    comFax: '', // 公司传真
    tableName: '', // 表格标题
    clientName: '' // 表格标题
  }
  Object.assign(data, param)
  const res = await newPost('exportToExcel', data)
  return res
}

/**
 * 导出数据到Excel
 * */
export async function exportData (param) {
  const data = {
    jsonStr: '', // JSON字符串
    sheetName: '', // 表名
    comName: '', // 公司名称
    comPhone: '', // 公司电话
    comFax: '' // 公司传真
  }
  Object.assign(data, param)
  const res = await newPost('exportData', data)
  return res
}

/**
 * 获取字段数组
 * */
export async function getField (param = {}) {
  const data = {}
  Object.assign(data, param)
  const res = await newPost('getField', data)
  return res
}

/**
 * 设置字段数组
 * */
export async function setputBoxFieldOrder (param = {}) {
  const data = {}
  Object.assign(data, param)
  const res = await newPost('setputBoxFieldOrder', data)
  return res
}

/**
 * 设置放箱协议费用
 * */
export async function setShipAgencyFee (param = {}) {
  const data = {
    shipAgencyId: '', // 船代Id
    customerId: '', // 客户编号 标准费用为0
    fee: '', // 放箱协议费用
    import: '' // 进出口 1进口 2出口
  }
  Object.assign(data, param)
  const res = await newPost('setShipAgencyFee', data)
  return res
}

/**
 * 获取船代费用
 * */
export async function shipAgencyFeeList (param) {
  const data = {
    customerId: '', // 客户编号 默认0标准备用
    import: '' // 2出口 1进口
  }
  if (param.import) {
    param.import = parseInt(param.import)
  }
  Object.assign(data, param)
  const res = await newPost('shipAgencyFeeList', data)
  return res
}

/**
 * 获取船代列表
 * */

export async function shipAgencyList (param) {
  const data = {
    text: '' // 船代编号加名称
  }
  Object.assign(data, param)
  const res = await newPost('shipAgencyList', data)
  return res
}

/**
 * 获取船公司列表
 * */

export async function boatCompanyList (param) {
  const data = {
    nameCncode: '' // 船公司名称
  }
  Object.assign(data, param)
  const res = await newPost('boatCompanyList', data)
  return res
}

/**
 * 获取堆场列表
 * */

export async function yardList (param) {
  const data = {
    yardName: '' // 堆场名称
  }
  Object.assign(data, param)
  const res = await newPost('yardList', data)
  return res
}

/**
 * 设置船代和船公司关联
 * */

export async function setboatCompany (param) {
  const data = {
    shipComId: '', // 船公司Id
    shipAgency: '' // 船代Id
  }
  Object.assign(data, param)
  const res = await newPost('setboatCompany', data)
  return res
}

/**
 * 进口设置船代和船公司关联
 * */

export async function importSetboatCompany (param) {
  const data = {
    shipComId: '', // 船公司Id
    shipAgency: '' // 船代Id
  }
  Object.assign(data, param)
  const res = await newPost('importSetboatCompany', data)
  return res
}

/**
 * 设置船公司和堆场关联
 * */

export async function setShipComYard (param) {
  const data = {
    shipComId: '', // 船公司Id
    yardId: '' // 堆场Id
  }
  Object.assign(data, param)
  const res = await newPost('setShipComYard', data)
  return res
}

/**
 * 船代下船公司列表
 * */

export async function shipComList (param) {
  const data = {
    shipAgencyId: '', // 船代Id
    customerId: '' // 客户编号 默认0标准备用
  }
  Object.assign(data, param)
  const res = await newPost('shipComList', data)
  return res
}

/**
 * 船公司下堆场列表
 * */

export async function yardComList (param) {
  const data = {
    shipComId: '', // 船公司Id
    customerId: '', // 客户编号 默认0标准备用
    shipAgencyId: '' // 船代ID
  }
  Object.assign(data, param)
  const res = await newPost('yardComList', data)
  return res
}

/**
 * 进口船公司下堆场列表
 * */

export async function importYardComList (param) {
  const data = {
    shipComId: '', // 船公司Id
    customerId: '', // 客户编号 默认0标准备用
    shipAgencyId: '' // 船代ID
  }
  Object.assign(data, param)
  const res = await newPost('importYardComList', data)
  return res
}

/**
 * 设置堆场费用
 * */

export async function setYardFee (param) {
  const data = {
    boatComId: '', // 船公司Id
    yardId: '', // 堆场Id
    yardFeeId: '', // 堆场费用Id
    boxTypeId: '', // 箱型Id
    fee: '', // 费用
    feeType: '', // 费用类型 0 箱型20收入 1 箱型20支出 2 箱型40收入 20 3 箱型40支出 4 箱型45收入 5 箱型45支出
    customerId: '', // 客户编号 默认0标准备用
    shipAgencyId: '' // 船代ID
  }
  if (param.feeType) {
    param.feeType = parseInt(param.feeType)
  }
  Object.assign(data, param)
  const res = await newPost('setYardFee', data)
  return res
}

/**
 * 设置进口堆场费用
 * */

export async function importSetYardFee (param) {
  const data = {
    boatComId: '', // 船公司Id
    yardId: '', // 堆场Id
    yardFeeId: '', // 堆场费用Id
    boxTypeId: '', // 箱型Id
    fee: '', // 费用
    feeType: '', // 费用类型 0 箱型20收入 1 箱型20支出 2 箱型40收入 20 3 箱型40支出 4 箱型45收入 5 箱型45支出
    customerId: '', // 客户编号 默认0标准备用
    shipAgencyId: '' // 船代ID
  }
  if (param.feeType) {
    param.feeType = parseInt(param.feeType)
  }
  Object.assign(data, param)
  const res = await newPost('importSetYardFee', data)
  return res
}

/**
 * 设置船公司费用
 * */

export async function setComFee (param) {
  const data = {
    shipAgencyId: '', // 船公司费用Id
    boatComId: '', // 船公司Id
    fee: '', // 费用
    feeType: '', // 费用类型 0 打单费收入 1 打单费支出 2 提箱费 20 3 提箱费40
    customerId: '' // 客户编号 默认0标准备用
  }
  Object.assign(data, param)
  const res = await newPost('setComFee', data)
  return res
}

/**
 * 设置进口船公司费用
 * */

export async function importSetComFee (param) {
  const data = {
    shipAgencyId: '', // 船公司费用Id
    boatComId: '', // 船公司Id
    fee: '', // 费用
    feeType: '', // 费用类型 0 打单费收入 1 打单费支出 2 提箱费 20 3 提箱费40
    customerId: '' // 客户编号 默认0标准备用
  }
  Object.assign(data, param)
  const res = await newPost('importSetComFee', data)
  return res
}

/**
 * 设置服务费
 * */

export async function serviceFee (param) {
  const data = {
    money: '', // 金额
    customerId: ''
  }
  if (param.money) {
    param.money = parseFloat(param.money)
  }
  Object.assign(data, param)
  const res = await newPost('serviceFee', data)
  return res
}

/**
 * 设置进口服务费
 * */

export async function importServiceFee (param) {
  const data = {
    customerId: '',
    money: '' // 金额
  }
  if (param.money) {
    param.money = parseFloat(param.money)
  }
  Object.assign(data, param)
  const res = await newPost('importServiceFee', data)
  return res
}

/**
 * 获取服务费
 * */

export async function getServiceFee (param) {
  const data = {
    yardName: '',
    customerId: '',
    import: '' // 进出口 2 出口 1进口
  }
  if (param.import) {
    param.import = parseFloat(param.import)
  }
  Object.assign(data, param)
  const res = await newPost('getServiceFee', data)
  return res
}

/**
 * 船代财务
 * */

export async function shipFinancial (param) {
  const data = {
    shipAgencyId: '', // 船代id
    startTime: '', // 开始时间
    endTime: '' // 结束时间
  }
  Object.assign(data, param)
  const res = await newPost('shipFinancial', data)
  return res
}

/**
 * 复制费用
 * */
export async function copyCost (param) {
  const data = {
    shipComId: '', // 船公司编号
    yardId: '', // 堆场编号
    customerId: '' // 客户编号
  }
  Object.assign(data, param)
  const res = await newPost('copyCost', data)
  return res
}

/**
 * 添加客户打款维护、船代打款维护
 * */
export async function addMoneyMaintain (param) {
  const data = {
    shipAgencyId: '', // type为0传船代编号 type为1传客户编号
    money: '', // 金额
    remark: '', // 备注
    type: 0, // 船代打款维护 1 客户打款维护 ,
    image: '' // 图片地址
  }
  Object.assign(data, param)
  const res = await newPost('addMoneyMaintain', data)
  return res
}

/**
 * 修改客户打款
 * */
export async function updateMoneyMaintain (param) {
  const data = {
    maintainId: '', // type为0传船代编号 type为1传客户编号
    remark: '', // 备注
    image: '' // 图片地址
  }
  Object.assign(data, param)
  const res = await newPost('updateMoneyMaintain', data)
  return res
}

/**
 * 获取客户打款
 * */
export async function moneyMaintainList (param) {
  const data = {
    clientId: '', // 用箱人编号
    startTime: '', // 开始时间
    endTime: '', // 结束时间
    page: '', // 页数
    num: '' // 条数
  }
  Object.assign(data, param)
  const res = await newPost('moneyMaintainList', data)
  return res
}

/**
 * 获取船代打款维护
 * */
export async function moneyShipList (param) {
  const data = {
    shipAgencyId: '', // 船代Id
    startTime: '', // 开始时间
    endTime: '', // 结束时间
    page: '', // 页数
    num: '' // 条数
  }
  if (param.page) {
    param.page = parseInt(param.page)
  }
  if (param.num) {
    param.num = parseInt(param.num)
  }
  Object.assign(data, param)
  const res = await newPost('moneyShipList', data)
  return res
}

/**
 * 删除付款维护
 * */
export async function deleteMoneyMaintain (param) {
  const data = {
    maintainId: '' // 维护Id
  }
  Object.assign(data, param)
  const res = await newPost('deleteMoneyMaintain', data)
  return res
}

/**
 * 财务结算列表
 * */
export async function settlementList (param) {
  const data = {
    customerId: '', // 客户编号 空代表所有客户
    curpage: 1, // 页码
    pageSize: 15, // 页数
    searchCondition: '' // 搜索条件
  }
  Object.assign(data, param)
  const res = await newPost('settlementList', data)
  return res
}

/**
 * 结算清单
 * */
export async function settlementDetailedList (param) {
  const data = {
    customerId: '', // 客户编号 空代表所有客户
    settlementState: '', // 结算状态 0 未结清 1 全部 2 产生结算 3 结清
    curpage: 1, // 页码
    pageSize: 15, // 页数
    searchCon: '' // 搜索条件
  }
  if (param.settlementState) {
    param.settlementState = parseFloat(param.settlementState)
  }
  Object.assign(data, param)
  const res = await newPost('settlementDetailedList', data)
  return res
}

/**
 * 结算详细信息
 * */
export async function settlementDetailInfo (param) {
  const data = {
    settlementFeeId: '', // 财务结算费用Id
    curpage: 1, // 页码
    pageSize: 15, // 页数
    searchCon: '' // 搜索条件
  }
  Object.assign(data, param)
  const res = await newPost('settlementDetailInfo', data)
  return res
}

/**
 * 结算单查看
 * */
export async function settlementBill (param) {
  const data = {
    settlementState: '', // 结算状态 0 未结清 1 全部 2 产生结算 3 结清
    searchCon: '', // 搜索条件
    myType: '', // 0按月查 1 按年查
    startTime: '', // 开始时间
    endTime: '' // 结束时间
  }
  if (param.settlementState) {
    param.settlementState = parseFloat(param.settlementState)
  }
  if (param.myType) {
    param.myType = parseFloat(param.myType)
  }
  Object.assign(data, param)
  const res = await newPost('settlementBill', data)
  return res
}

/**
 * 已结算列表
 * */
export async function yesSettlementList (param) {
  const data = {
    startTime: '', // 开始时间
    endTime: '', // 结束时间
    customerId: '', // 客户编号
    curpage: 1, // 页码
    pageSize: 15, // 页数
    blno: '' // 提单号
  }
  Object.assign(data, param)
  const res = await newPost('yesSettlementList', data)
  return res
}

/**
 * 未结算列表
 * */
export async function noSettlementList (param) {
  const data = {
    startTime: '', // 开始时间
    endTime: '', // 结束时间
    customerId: '', // 客户编号
    blno: '' // 提单号
  }
  Object.assign(data, param)
  const res = await newPost('noSettlementList', data)
  return res
}

/**
 * 结算
 * */
export async function settlement (param) {
  const data = {
    startTime: '', // 开始时间
    endTime: '', // 结束时间
    userCode: [] // 箱子编号数组
  }
  Object.assign(data, param)
  const res = await newPost('settlement', data)
  return res
}

/**
 * 取消结算
 * */
export async function cancelSettlement (param) {
  const data = {
    settlementFeeId: [] // 箱子编号数组
  }
  Object.assign(data, param)
  const res = await newPost('cancelSettlement', data)
  return res
}

/**
 * 操作员汇总
 * */
export async function operatorSummary (param) {
  const data = {
    operatorId: '', // 操作员Id
    startTime: '',
    endTime: ''
  }
  Object.assign(data, param)
  const res = await newPost('operatorSummary', data)
  return res
}

/**
 * 财务结算批量导出
 * */
export async function batchExport (param) {
  const data = {}
  Object.assign(data, param)
  const res = await newPost('batchExport', data)
  return res
}

/**
 * 导出结算单详细信息
 * */
export async function exportSettlementDetailInfo (param) {
  const data = {
    settlementFeeId: '', // 财务结算费用Id
    searchCon: '', // 搜索条件
    customerId: '' // 客户Id
  }
  Object.assign(data, param)
  const res = await newPost('exportSettlementDetailInfo', data)
  return res
}

/**
 * 船代财务结算列表
 * */
export async function shipSettlementList (param) {
  const data = {
    shipAgencyId: '', // 船代编号,空代表所有船代
    curpage: 1, // 页码
    pageSize: 15, // 页数
    searchCondition: '' // 搜索条件
  }
  Object.assign(data, param)
  const res = await newPost('shipSettlementList', data)
  return res
}

/**
 * 船代结算清单
 * */
export async function shipSettlementDetailedList (param) {
  const data = {
    shipAgencyId: '', // 船代编号,空代表所有船代
    settlementState: '', // 结算状态 0 未结清 1 全部 2 产生结算 3 结清
    curpage: 1, // 页码
    pageSize: 15, // 页数
    searchCon: '' // 搜索条件
  }
  if (param.settlementState) {
    param.settlementState = parseFloat(param.settlementState)
  }
  Object.assign(data, param)
  const res = await newPost('shipSettlementDetailedList', data)
  return res
}

/**
 * 船代结算详细信息
 * */
export async function shipSettlementDetailInfo (param) {
  const data = {
    shipSettlementId: '', // 船代财务结算费用Id
    curpage: 1, // 页码
    pageSize: 15, // 页数
    searchCon: '' // 搜索条件
  }
  Object.assign(data, param)
  const res = await newPost('shipSettlementDetailInfo', data)
  return res
}

/**
 * 结算单查看
 * */
// export async function settlementBill (param) {
//   const data = {
//     shipAgencyId: '', // 结算状态 0 未结清 1 全部 2 产生结算 3 结清
//     searchCon: '', // 搜索条件
//     myType: '', // 0按月查 1 按年查
//     startTime: '', // 开始时间
//     endTime: '' // 结束时间
//   }
//   if (param.settlementState) {
//     param.settlementState = parseFloat(param.settlementState)
//   }
//   if (param.myType) {
//     param.myType = parseFloat(param.myType)
//   }
//   Object.assign(data, param)
//   const res = await newPost('settlementBill', data)
//   return res
// }

/**
 * 船代已结算列表
 * */
export async function shipYesSettlement (param) {
  const data = {
    startTime: '', // 开始时间
    endTime: '', // 结束时间
    shipAgencyId: '', // 船代编号
    curpage: 1, // 页码
    pageSize: 15, // 页数
    blno: '' // 提单号
  }
  Object.assign(data, param)
  const res = await newPost('shipYesSettlement', data)
  return res
}

/**
 * 船代未结算列表
 * */
export async function shipSettleList (param) {
  const data = {
    startTime: '', // 开始时间
    endTime: '', // 结束时间
    shipAgencyId: '', // 船代编号
    curpage: 1, // 页码
    pageSize: 15, // 页数
    blno: '' // 提单号
  }
  Object.assign(data, param)
  const res = await newPost('shipSettleList', data)
  return res
}

/**
 * 船代结算
 * */
export async function shipSettlement (param) {
  const data = {
    startTime: '', // 开始时间
    endTime: '', // 结束时间
    userCode: [] // 箱子编号数组
  }
  Object.assign(data, param)
  const res = await newPost('shipSettlement', data)
  return res
}

/**
 * 船代取消结算
 * */
export async function shipCancelSettlement (param) {
  const data = {
    shipSettlementId: [] // 箱子编号数组
  }
  Object.assign(data, param)
  const res = await newPost('shipCancelSettlement', data)
  return res
}

/**
 * 船代导出结算单详细信息
 * */
export async function shipExportSettlementDetailInfo (param) {
  const data = {
    shipSettlementId: [], // 船代财务结算Id
    searchCon: '', // 搜索条件
    shipAgencyId: '' // 船代编号
  }
  Object.assign(data, param)
  const res = await newPost('shipExportSettlementDetailInfo', data)
  return res
}

/**
 * 船代财务结算批量导出
 * */
export async function shipBatchExport (param) {
  const data = {}
  Object.assign(data, param)
  const res = await newPost('shipBatchExport', data)
  return res
}

/**
 * 汇总表批量导出
 * */
export async function statisticsDerived (param) {
  const data = {
    clientId: '', // 客户编号 ,
    boatAgentId: '', //  船公司编号 ,
    theOperatorId: '', //  业务员编号 ,
    boxState: '', //  状态放箱状态 0新业务 1放单中 2已完成 3 已拒绝 4 没预配 5 船期早 6 明天放 7 已退关 8等通知 9客户取消10 退单 11 申请中 12 爆仓 13有问题 14 缺箱子 15 换单中 ,
    applyStartTime: '', //  申请开始时间 ,
    applyEndTime: '', //  申请结束时间
    styleType: '', // 导出样式
    page: 1, //  页数
    num: 15 //  条数
  }
  if (param.styleType) {
    param.styleType = parseFloat(param.styleType)
  }
  Object.assign(data, param)
  const res = await newPost('statisticsDerived', data)
  return res
}

/**
 * 获取结清金额
 * */
export async function settleMoney (param) {
  const data = {
    customerId: '', // 客户编号
    money: '' // 金额
  }
  Object.assign(data, param)
  const res = await newPost('settleMoney', data)
  return res
}

/**
 * 款项结清
 * */
export async function paySettlement (param) {
  const data = {
    customerId: '', // 客户编号
    money: '' // 金额
  }
  if (param.money) {
    param.money = parseFloat(param.money)
  }
  Object.assign(data, param)
  const res = await newPost('paySettlement', data)
  return res
}
